from Student import Student


class School():
    # 创建学生容器
    stus = []

    def menu(self):
        print("---进入学生管理系统---")
        print("---1.添加学生---")
        print("---2.修改学生---")
        print("---3.查询学生---")
        print("---4.删除学生---")
        print("---0.退出系统---")
        num = int(input("请输入要选择的功能"))
        if num == 1:
            self.addstu()
        elif num == 2:
            self.modifyStu()
        elif num == 3:
            self.showStu()
        elif num == 4:
            self.delStu()
        elif num == 0:
            print("---退出学生管理系统---")
            return
        else:
            print("输入错误，请重新调用")
            self.menu()

    def key(self):
        s = input("输入Y继续，输入N返回主界面")
        if s == "Y" or s == "y":
            return True
        elif s == "N" or s == "n":
            return False
        else:
            print("输入错误请重新输入")
            self.key()

    # 添加学生
    def addstu(self):
        sno = int(input('请输入学生学号：'))

        for i in self.stus:
            if sno == i.getSid():
                print("您输入的学号信息已存在，请重新输入")
                self.addstu()
        sname = input("请输入学生姓名：")
        scope = int(input("请输入学生成绩："))
        scity = input("请输入学生住址：")
        s = Student(sno, sname, scope, scity)
        self.stus.append(s)
        print("学生信息添加成功")
        print("学号：" + str(s.getSid()) + " 姓名：" + s.getSname() + " 成绩： " + str(
            s.getScope()) + " 住址：" + s.getScity())
        key_c = self.key()
        if key_c:
            self.addstu()
        else:
            for i in self.stus:
                print(i)
            self.menu()

    # 修改学生信息
    def modifyStu(self):
        sno = int(input("请输入要修改的学生学号："))
        flag = False
        for i in self.stus:
            if sno == i.getSid():
                flag = True
                break
        if flag:
            print(f"学号：{i.getSid()},姓名：{i.getSname()},成绩：{i.getScope()},住址：{i.getScity()}")
            id = int(input("请输入您要修改的学号："))
            i.setSid(id)
            name = input("请输入您要修改的姓名：")
            i.setSname(name)
            scope = int(input("请输入您要修改的成绩："))
            i.setScope(scope)
            city = input("请输入您要修改的住址：")
            i.setScity(city)
            print("---学生信息修改完成---")
            print(f"学号：{i.getSid()},姓名：{i.getSname()},成绩：{i.getScope()},住址：{i.getScity()}")
        else:
            print("学生信息不存在")
        key_c = self.key()
        if key_c:
            self.modifyStu()
        else:
            self.menu()

    # 查询学生
    def showStu(self):
        sno = int(input("请输入要查询的学生学号："))
        flag = False
        for i in self.stus:
            if sno == i.getSid():
                print("学生信息查询完成")
                flag = True
        if flag:
            print(f"学号：{i.getSid()},姓名：{i.getSname()},成绩：{i.getScope()},住址：{i.getScity()}")
        else:
            print("学生信息不存在，请重新输入学号")
            key_c = self.key()
            if key_c:
                self.showStu()
            else:
                self.menu()

    # 删除学生
    def delStu(self):
        sno = int(input("请输入要删除的学生学号："))
        t = 0
        for i in self.stus:
            if sno == i.getSid():
                break
            else:
                t += 1
        print("---学生信息删除中---")
        self.stus.pop(t)
        print("---学生信息删除成功---")

